package modelo;

import modelo.Tablero;
import excepciones.TableroIndiceFueraDeRangoExcepcion;

import java.util.Iterator;

public class MinaSubmarinaPorContacto extends Mina {
	
	public MinaSubmarinaPorContacto() {
		this.puntos = 150;
		this.rango = 0;
	}
	
	@Override
	public void explotar(Tablero tablero) {
		try {
			Posicion posicionExplosion = tablero.getPosicion(this.posicion.getFila(), this.posicion.getColumna());
			this.hacerDanio(posicionExplosion.getBarcos(), posicionExplosion);
		}
		catch (TableroIndiceFueraDeRangoExcepcion unError) { }
		this.posicion.quitarMina();
	}

	@Override
	//se fija si mina puede explotar.
	public boolean puedeExplotar() {
		return (this.posicion.getBarcos().hasNext());
	}

	@Override
	public void hacerDanio(Iterator<Barco> barcos, Posicion posicionExplosion) {
		Barco barco;
		while (barcos.hasNext()) {
			barco = barcos.next();
			barco.recibirDanioMinaDeContacto(posicionExplosion);
		}
	}

	@Override
	public void siguienteTurno() {}
	
	@Override
	public Mina getOtraMina(){
		return new MinaSubmarinaPorContacto();
	}
}
